package com.yc.cloud.admin.service;

import com.yc.cloud.admin.dto.request.SipDeviceQueryReqDTO;
import com.yc.cloud.admin.vo.SipDeviceListVo;
import com.yc.cloud.admin.vo.SipDeviceVo;

/**
 * SIP信令服务器API服务接口
 *
 * @author kinggu
 * @since 2025-09-09
 */
public interface SipServerService {

    /**
     * 查询设备在线列表
     *
     * @param queryReqDTO 查询参数
     * @return 设备列表
     */
    SipDeviceListVo queryDevices(SipDeviceQueryReqDTO queryReqDTO);

    /**
     * 根据设备ID获取设备详情
     *
     * @param deviceId 设备ID
     * @return 设备详情
     */
    SipDeviceVo getDeviceById(String deviceId);

    /**
     * PTZ设备控制
     *
     * @param deviceId 设备ID
     * @param channel 通道ID
     * @param command 控制命令 (stop, up, down, left, right, zoom_in, zoom_out等)
     * @param horizonSpeed 水平速度 (0-255)
     * @param verticalSpeed 垂直速度 (0-255)
     * @param zoomSpeed 缩放速度 (0-255)
     * @return 控制结果
     */
    boolean controlPtz(String deviceId, String channel, String command, Integer horizonSpeed, Integer verticalSpeed, Integer zoomSpeed);
}